package com.geovis.boot.common.vo;

import com.geovis.boot.common.util.StringConvertUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @author cl
 */
@Data
public abstract class PageVo<T> implements Serializable{

    public abstract Class getGenericType();

    public String  getOrderColumnByProperty(String property){
        //获取这个类上的注解，如果没有注解，则将属性都小写，然后单词之间改为下划线连接

//        Field field = null;// 暴力获取private修饰的成员变量
//        try {
//            field = getGenericType().getDeclaredField(property);
////            Column column = field.getAnnotation(Column.class);
////            if(column!=null){
////                return	column.name();
////            }
//
//            TableField tableField = field.getAnnotation(TableField.class);
//            if(tableField!=null){
//                return  tableField.value();
//            }
//
//
//
//        } catch (NoSuchFieldException e) {
//            e.printStackTrace();
//        }
        //如果两个都查找不到，那么将这个属性由驼峰改为下划线链接
        return StringConvertUtils.convertCamel2Underline(property);

    }
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "页号")
    private int pageNumber;

    @ApiModelProperty(value = "页面大小")
    private int pageSize;

    @ApiModelProperty(value = "排序字段")
    private String sort;

    @ApiModelProperty(value = "排序方式 asc/desc")
    private String order;
}
